﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;
using System.Configuration;

namespace WebApplication1.Admin
{
    public partial class AgrupacionesAdministracion : System.Web.UI.Page
    {
        #region StrAgrupId
        public string StrAgrupId
        {
            get
            {
                if (ViewState["StrAgrupId"] != null)
                    return ViewState["StrAgrupId"].ToString();
                return "";
            }
            set { ViewState["StrAgrupId"] = value; }
        }
        #endregion

        #region TraerContextItems
        private void TraerContextItems()
        {
            if (Context != null)
            {

                if (Context.Items["StrAgrupId"] != null)
                    StrAgrupId = Context.Items["StrAgrupId"].ToString();
            }
        }
        #endregion

        #region Page_Load
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                TraerContextItems();
                //CARGAR TABLAS BASICAS
                cargarDepartamentos();
                cargarTipoGrupo();
                cargarEntidades();

                if (StrAgrupId != "")
                {
                    cargarCampos();
                }
            }

        }
        #endregion

        #region cargarDepartamentos
        private void cargarDepartamentos()
        {
            try
            {
                Model.DataClassesSidanzaDataContext contexto = new Model.DataClassesSidanzaDataContext();
                var datos = from a in contexto.BAS_ZONAS_GEOGRAFICAs
                            where object.Equals(a.ZON_PADRE_ID, null)
                            select a;
                if (datos == null) return;
                ddlAgeDepartamento.DataSource = datos;
                ddlAgeDepartamento.TextField = "ZON_NOMBRE";
                ddlAgeDepartamento.ValueField = "ZON_ID";
                ddlAgeDepartamento.DataBind();
                ddlAgeDepartamento.Items.Insert(0, new DevExpress.Web.ASPxEditors.ListEditItem("--Seleccione--", ""));
            }
            catch (Exception)
            {

                throw;
            }

        }
        #endregion

        #region cargarTipoGrupo
        private void cargarTipoGrupo()
        {
            try
            {
                Model.DataClassesSidanzaDataContext contexto = new Model.DataClassesSidanzaDataContext();
                var datos = from a in contexto.ART_TIPOS_AGRUPACIONEs
                            select a
                            ;
                if (datos == null) return;
                ddlTipoAgrupacion.DataSource = datos;
                ddlTipoAgrupacion.TextField = "ATA_NOMBRE";
                ddlTipoAgrupacion.ValueField = "ATA_ID";
                ddlTipoAgrupacion.DataBind();
                ddlTipoAgrupacion.Items.Insert(0, new DevExpress.Web.ASPxEditors.ListEditItem("--TODOS--", ""));
            }
            catch (Exception)
            {

                throw;
            }

        }
        #endregion

        #region cargarEntidades
        private void cargarEntidades()
        {
           
            Model.DataClassesSidanzaDataContext contexto = new Model.DataClassesSidanzaDataContext();
            var datos = from a in contexto.ART_ENTIDADES_ARTEs
                        join b in contexto.ART_ENTIDAD_ACTIVIDADs on a.ENT_ID equals b.ENT_ID
                        join c in contexto.ART_TIPO_ENTIDAD_ARTISTICAs on b.TEA_ID equals c.TEA_ID
                        join d in contexto.ART_AREA_ARTISTICAs on c.TEA_AREA_ID equals d.ARD_ID
                        where d.ARD_ID == 13
                         
                       select a;
            if (datos == null) return;
            ddlAAD_ENTIDAD.DataSource = datos;
            ddlAAD_ENTIDAD.TextField = "ENT_NOMBRE";
            ddlAAD_ENTIDAD.ValueField = "ENT_ID";
            ddlAAD_ENTIDAD.DataBind();
            ddlAAD_ENTIDAD.Items.Insert(0, new DevExpress.Web.ASPxEditors.ListEditItem("--Seleccione--", "0"));
        }
           
        #endregion

        #region cargarCampos
        private void cargarCampos()
        {
            try
            {
                Model.DataClassesSidanzaDataContext contexto = new Model.DataClassesSidanzaDataContext();

                #region ART_AGRUPACIONES_DANZA

                var datosEntidad = (from a in contexto.ART_AGRUPACIONES_DANZAs
                                    where a.AAD_ID == Convert.ToDecimal(StrAgrupId)
                                    select a);
                foreach (var v in datosEntidad)
                {
                    txtAAD_NOMBRE.Text = v.AAD_NOMBRE;
                    txtAAD_NIT.Text = v.AAD_NIT.ToString();
                    txtAAD_TELEFONO.Text = v.AAD_TELEFONO.ToString();
                    txtAAD_CORREO.Text = v.AAD_CORREO;
                    txtAAD_DIRECCION.Text = v.AAD_DIRECCION;
                    ddlTipoAgrupacion.Value = v.ATA_ID.ToString();
                    memoAAD_DESCRIPCION.Text = v.AAD_DESCRIPCION;
                    lblAAD_ANOS_TRAYECTORIA.Text = v.AAD_ANOS_TRAYECTORIA.ToString();
                    lblAAD_INSTITUCIONALIDAD.Text = v.AAD_INSTITUCIONALIDAD;
                    memoAAD_FINANCIACION.Text = v.AAD_FINANCIACION;
                    lblAAD_HORAS_SEMANA.Text = v.AAD_HORAS_SEMANA.ToString();
                    lblAAD_PERIODOS_DESCANSO.Text = v.AAD_PERIODOS_DESCANSO;
                    lblAAD_MES_ANO.Text = v.AAD_MES_ANO.ToString();
                    lblAAD_PERFILES_FORMADORES.Text = v.AAD_PERFILES_FORMADORES;
                    lblAAD_CONDICIONES_LABORALES_FORMADORES.Text = v.AAD_CONDICIONES_LABORALES_FORMADORES;
                    lblAAD_PROGRAMA_AGRUPACION.Text = v.AAD_PROGRAMA_AGRUPACION;
                    lblAAD_LOGROS_AGRUPACION.Text = v.AAD_LOGROS_AGRUPACION;
                    memoAAD_INFRAESTRUCTURA.Text = v.AAD_INFRAESTRUCTURA;
                    memoAAD_ACTIVIDADES_ACTUALIZACION_FORMADORES.Text = v.AAD_ACTIVIDADES_ACTUALIZACION_FORMADORES;
                    ddlAAD_ENTIDAD.Value = v.ENT_ID.ToString();
                   
                    if (!String.IsNullOrEmpty(v.ZON_ID))
                    {
                        string strDep = v.ZON_ID.Substring(0, 2);
                        ddlAgeDepartamento.Value = strDep;

                        var datosZonas = from a in contexto.BAS_ZONAS_GEOGRAFICAs
                                         where object.Equals(a.ZON_PADRE_ID, strDep)
                                         select a;
                        if (datosZonas != null)
                        {
                            ddlAgeMunicipio.DataSource = datosZonas;
                            ddlAgeMunicipio.TextField = "ZON_NOMBRE";
                            ddlAgeMunicipio.ValueField = "ZON_ID";
                            ddlAgeMunicipio.DataBind();
                            ddlAgeMunicipio.Value = v.ZON_ID;
                        }
                    }
                   
                }
                #endregion

                }
            catch (Exception)
            {

                throw;
            }
        }
        #endregion

        #region salvarArchivo
        private string salvarArchivo(FileUpload fileUpload1, ref HyperLink lnkArchivoLocal)
        {
            string strNombreArchivo = null;
            if (fileUpload1 != null && lnkArchivoLocal != null)
            {

                if (fileUpload1.HasFile)
                {
                    strNombreArchivo = DateTime.Now.ToString().Replace("/", "-").Replace(":", ".") + "_" +
                                           fileUpload1.FileName;
                    //Obtiene el nombre del archivo
                    //Obtiene la locacion fisica del archivo
                    int nIndex = 0;
                    string strLocation = ConfigurationManager.AppSettings["rutaArchivos"];//Server.MapPath("Archivos");
                    //Salva el archivo
                    fileUpload1.PostedFile.SaveAs(strLocation + strNombreArchivo);
                    //actualiza el link del archivo

                    lnkArchivoLocal.Text = strNombreArchivo;
                    string path = this.Request.Url.AbsolutePath;
                    if (nIndex > 0)
                    {
                        path = path.Substring(0, nIndex);
                    }


                    lnkArchivoLocal.NavigateUrl = "../Archivos/" + strNombreArchivo;
                    // GetPath() + "/" + RelativePath + "/" + strNombreArchivo;
                    //txtDocumentoOculto.Text = FileUploaded; //para que funcione el custom validator
                    lnkArchivoLocal.Visible = true;
                    lnkArchivoLocal.Target = "_blank";
                    //btnEliminarArchivoDocumento.Visible = true;

                    //lblFileMessage.CssClass = "fila1";
                    //lblFileMessage.Text = "Por favor no cargue documentos que superen los " + this.MaxLength + " Kb";


                }
                //else
                //{
                //    algo = "No file was uploaded.";
                //}


            }
            return strNombreArchivo;
        }
        #endregion

        #region DeleteFile
        private void DeleteFile(string strFileName)
        {

            strFileName = ConfigurationManager.AppSettings["rutaArchivos"] + strFileName;
            //Delete file from the server

            if (strFileName.Trim().Length > 0)
            {
                FileInfo fi = new FileInfo(strFileName);
                if (fi.Exists) //if file exists delete it
                {
                    fi.Delete();
                }
            }
        }
        #endregion

        #region ddlAgeDepartamento_SelectedIndexChanged
        protected void ddlAgeDepartamento_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (ddlAgeDepartamento.Value.ToString() == "") return;
            if (ddlAgeDepartamento.Value.ToString() == "0")
            {
                ddlAgeMunicipio.Items.Clear();
                return;
            }

            Model.DataClassesSidanzaDataContext contexto = new Model.DataClassesSidanzaDataContext();
            var datos = from a in contexto.BAS_ZONAS_GEOGRAFICAs
                        where object.Equals(a.ZON_PADRE_ID, ddlAgeDepartamento.Value)
                        select a;
            if (datos == null) return;
            ddlAgeMunicipio.DataSource = datos;
            ddlAgeMunicipio.TextField = "ZON_NOMBRE";
            ddlAgeMunicipio.ValueField = "ZON_ID";
            ddlAgeMunicipio.DataBind();
        }
        #endregion

        #region Boton Guardar
        protected void btnGuardar_Click(object sender, EventArgs e)
        {
            //ART_AGRUPACIONES

            try
            {
                Model.DataClassesSidanzaDataContext contexto = new Model.DataClassesSidanzaDataContext();

                Model.ART_AGRUPACIONES_DANZA objART_AGRUPACIONES_DANZA = new Model.ART_AGRUPACIONES_DANZA();

                if (StrAgrupId != "")
                {
                    var datos = from a in contexto.ART_AGRUPACIONES_DANZAs
                                where a.AAD_ID == Convert.ToDecimal(StrAgrupId)
                                select a;
                    foreach (var v in datos)
                    {
                       v.AAD_NOMBRE = txtAAD_NOMBRE.Text;
                    v.AAD_NIT = Convert.ToDecimal(txtAAD_NIT.Text);
                    v.AAD_TELEFONO = txtAAD_TELEFONO.Text;
                    v.AAD_CORREO = txtAAD_CORREO.Text;
                    v.AAD_DIRECCION = txtAAD_DIRECCION.Text;
                    v.ZON_ID = ddlAgeMunicipio.Value.ToString();
                    v.ATA_ID = Convert.ToDecimal(ddlTipoAgrupacion.Value);
                    v.ENT_ID = Convert.ToDecimal(ddlAAD_ENTIDAD.Value);
                    v.AAD_DESCRIPCION = memoAAD_DESCRIPCION.Text;
                    v.AAD_ANOS_TRAYECTORIA = Convert.ToInt32(lblAAD_ANOS_TRAYECTORIA.Text);
                    v.AAD_INSTITUCIONALIDAD = lblAAD_INSTITUCIONALIDAD.Text;
                    v.AAD_FINANCIACION = memoAAD_FINANCIACION.Text;
                    v.AAD_HORAS_SEMANA = Convert.ToInt32(lblAAD_HORAS_SEMANA.Text);
                    v.AAD_PERIODOS_DESCANSO = lblAAD_PERIODOS_DESCANSO.Text;
                    v.AAD_MES_ANO = Convert.ToInt32(lblAAD_MES_ANO.Text);
                    v.AAD_PERFILES_FORMADORES = lblAAD_PERFILES_FORMADORES.Text;
                    v.AAD_CONDICIONES_LABORALES_FORMADORES = lblAAD_CONDICIONES_LABORALES_FORMADORES.Text;
                    v.AAD_PROGRAMA_AGRUPACION = lblAAD_PROGRAMA_AGRUPACION.Text;
                    v.AAD_LOGROS_AGRUPACION = lblAAD_LOGROS_AGRUPACION.Text;
                    v.AAD_INFRAESTRUCTURA = memoAAD_INFRAESTRUCTURA.Text;
                    contexto.SubmitChanges(); 
                    }
                }
                else
                {


                    objART_AGRUPACIONES_DANZA.AAD_NOMBRE = txtAAD_NOMBRE.Text;
                    objART_AGRUPACIONES_DANZA.AAD_NIT = Convert.ToDecimal(txtAAD_NIT.Text);
                    objART_AGRUPACIONES_DANZA.AAD_TELEFONO = txtAAD_TELEFONO.Text;
                    objART_AGRUPACIONES_DANZA.AAD_CORREO = txtAAD_CORREO.Text;
                    objART_AGRUPACIONES_DANZA.AAD_DIRECCION = txtAAD_DIRECCION.Text;
                    objART_AGRUPACIONES_DANZA.ZON_ID = ddlAgeMunicipio.Value.ToString();
                    objART_AGRUPACIONES_DANZA.ATA_ID = Convert.ToDecimal(ddlTipoAgrupacion.Value);
                    objART_AGRUPACIONES_DANZA.ENT_ID = Convert.ToDecimal(ddlAAD_ENTIDAD.Value);
                    objART_AGRUPACIONES_DANZA.AAD_DESCRIPCION = memoAAD_DESCRIPCION.Text;
                    objART_AGRUPACIONES_DANZA.AAD_ANOS_TRAYECTORIA = Convert.ToInt32(lblAAD_ANOS_TRAYECTORIA.Text);
                    objART_AGRUPACIONES_DANZA.AAD_INSTITUCIONALIDAD = lblAAD_INSTITUCIONALIDAD.Text;
                    objART_AGRUPACIONES_DANZA.AAD_FINANCIACION = memoAAD_FINANCIACION.Text;
                    objART_AGRUPACIONES_DANZA.AAD_HORAS_SEMANA = Convert.ToInt32(lblAAD_HORAS_SEMANA.Text);
                    objART_AGRUPACIONES_DANZA.AAD_PERIODOS_DESCANSO = lblAAD_PERIODOS_DESCANSO.Text;
                    objART_AGRUPACIONES_DANZA.AAD_MES_ANO = Convert.ToInt32(lblAAD_MES_ANO.Text);
                    objART_AGRUPACIONES_DANZA.AAD_PERFILES_FORMADORES = lblAAD_PERFILES_FORMADORES.Text;
                    objART_AGRUPACIONES_DANZA.AAD_CONDICIONES_LABORALES_FORMADORES = lblAAD_CONDICIONES_LABORALES_FORMADORES.Text;
                    objART_AGRUPACIONES_DANZA.AAD_PROGRAMA_AGRUPACION = lblAAD_PROGRAMA_AGRUPACION.Text;
                    objART_AGRUPACIONES_DANZA.AAD_LOGROS_AGRUPACION = lblAAD_LOGROS_AGRUPACION.Text;
                    objART_AGRUPACIONES_DANZA.AAD_INFRAESTRUCTURA = memoAAD_INFRAESTRUCTURA.Text;

                    contexto.ART_AGRUPACIONES_DANZAs.InsertOnSubmit(objART_AGRUPACIONES_DANZA);
                    contexto.SubmitChanges();
                }
                

                //// GUARDAR GENERAL
                ScriptManager.RegisterStartupScript(Page, Page.GetType(), "msg1_parteA", "alert('La información  se guardo exitosamente');", true);
            }
            catch (Exception ex)
            {

                ScriptManager.RegisterStartupScript(Page, Page.GetType(), "msg1_error", ex.Message.ToString(), true);
            }
        }
        #endregion

        #region Boton Regresar
        protected void btnRegresar_Click(object sender, EventArgs e)
        {
            Server.Transfer("AgrupacionesListado.aspx", true);
        }
        #endregion

        #region Boton Publicar
        protected void btnPublicar_Click(object sender, EventArgs e)
        {
            try
            {
                Model.DataClassesSidanzaDataContext contexto = new Model.DataClassesSidanzaDataContext();

                var datos = from a in contexto.ART_AGRUPACIONES_DANZAs
                            where a.AAD_ID == Convert.ToDecimal(StrAgrupId)
                            select a;

                foreach (var v in datos)
                {
                    v.AAD_ESTADO = "P";
                    contexto.SubmitChanges();
                
                }
                ScriptManager.RegisterStartupScript(Page, Page.GetType(), "msg1_error", "LA INFORMACIÓN SE PUBLICÓ EXITOSAMENTE", true);
            }
            catch (Exception ex)
            {

                ScriptManager.RegisterStartupScript(Page, Page.GetType(), "msg1_error", ex.Message.ToString() , true);
            }

        }
        #endregion

    }

   }


     
